package think.interfaces;

interface CanFight{
    void fight();
}
interface CanSwim{
    void swim();
}
interface CanFly{
    void fly();
    default void show(){};
}
class ActionCharacter{
     public void fight(){}
}
class Hero extends ActionCharacter
        implements CanFight,CanFly,CanSwim{
    public void swim(){}
    public void fly(){}
    public void show(){
        System.out.println("this is a Hero instance");
    }
}

public class Adventure {
    public static void t(CanFight x){x.fight();}
    public static void u(CanSwim x){x.swim();}
    public static void v(CanFly x){x.fly();}
    public static void w(ActionCharacter x){x.fight();}

    public static void main(String args[]){
        Hero h=new Hero();
        t(h);
        u(h);
        v(h);
        w(h);
        h.show();
    }
}
